package cn.stylefeng.guns.modular.business.frequency.appmessage.service;

import cn.stylefeng.guns.core.pojo.page.PageResult;
import cn.stylefeng.guns.core.pojo.response.ResponseData;
import cn.stylefeng.guns.modular.business.app.controller.vo.GetUserByToken;
import cn.stylefeng.guns.modular.business.app.controller.vo.PageBasic;
import cn.stylefeng.guns.modular.business.app.controller.vo.UserVo;
import cn.stylefeng.guns.modular.business.frequency.appmessage.entity.AppMessage;
import cn.stylefeng.guns.modular.business.frequency.appmessage.model.param.AppMessageParam;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 系统消息表 服务类
 *
 * @author 刘耀
 * @date 2022/02/01 11:05
 */
public interface AppMessageService extends IService<AppMessage> {

    /**
     * 分页查询系统消息表
     *
     * @author 刘耀
     * @date 2022/02/01 11:05
     */
    PageResult<AppMessage> page(AppMessageParam appMessageParam);

    /**
     * 查询所有系统消息表
     *
     * @author 刘耀
     * @date 2022/02/01 11:05
     */
    List<AppMessage> list(AppMessageParam appMessageParam);

    /**
     * 添加系统消息表
     *
     * @author 刘耀
     * @date 2022/02/01 11:05
     */
    void add(AppMessageParam appMessageParam);

    /**
     * 删除系统消息表
     *
     * @author 刘耀
     * @date 2022/02/01 11:05
     */
    void delete(AppMessageParam appMessageParam);

    /**
     * 编辑系统消息表
     *
     * @author 刘耀
     * @date 2022/02/01 11:05
     */
    void edit(AppMessageParam appMessageParam);

    /**
     * 查看详情系统消息表
     *
     * @author 刘耀
     * @date 2022/02/01 11:05
     */
    AppMessage detail(Long appMessageId);

    ResponseData messageCenter(UserVo user);

    ResponseData messageList(UserVo user, PageBasic req);

    ResponseData clearList(List<Long> messageIds, UserVo user);

    void publish(AppMessageParam appMessageParam);

    /**禁用所有的提醒消息*/
    void deleteByOrderId(Long orderId);

}